// 图书相关 API 封装
// 说明：后续如果有统一 axios 实例，可在此引入；暂时简单封装，便于维护。
import axios from 'axios'

const client = axios.create({
  // 若项目已有全局 baseURL 设置，可删除 baseURL
  baseURL: '/api'
})

// 统一处理封面 URL（后端暂未在列表返回 cover_url 时使用）
function normalizeCover(item) {
  if (!item) return item
  if (item.cover && !item.cover_url) {
    item.cover_url = `/static/${item.cover}`
  }
  return item
}

export async function fetchBooks(params = {}) {
  const { page = 1, page_size = 50, category, dynasty, keyword } = params
  const res = await client.get('/api/books/', {
    params: { page, page_size, category, dynasty, keyword }
  })
  const data = res.data || { items: [] }
  data.items = data.items.map(b => normalizeCover(b))
  return data
}

export async function fetchBookDetail(id) {
  const res = await client.get(`/api/books/${id}`)
  const book = normalizeCover(res.data)
  return book
}

// 按章节获取（chapter_id 可选）
export async function fetchBookContent(id, chapterId = null) {
  const res = await client.get(`/api/books/${id}/content`, {
    params: chapterId ? { chapter_id: chapterId } : {}
  })
  return res.data
}
